run length encoding algorithm